﻿using System.Collections.ObjectModel;
using Renci.Data.Interop.OpenGIS.Ogc;
using System.Xml;

namespace Renci.Data.Interop.OpenGIS.Wfs
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/wfs")]
    [System.Xml.Serialization.XmlRootAttribute("Query", Namespace = "http://www.opengis.net/wfs", IsNullable = false)]
    public class QueryType
    {
        private Collection<object> _items = new Collection<object>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Function", typeof(FunctionType), Namespace = "http://www.opengis.net/ogc")]
        [System.Xml.Serialization.XmlElementAttribute("PropertyName", typeof(string))]
        [System.Xml.Serialization.XmlElementAttribute("XlinkPropertyName", typeof(XlinkPropertyName))]
        public Collection<object> Items
        {
            get
            {
                return this._items;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Filter", Namespace = "http://www.opengis.net/ogc")]
        public FilterType Filter { get; set; }

        private Collection<SortPropertyType> _sortBy = new Collection<SortPropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("SortProperty", IsNullable = false)]
        [System.Xml.Serialization.XmlArrayAttribute("SortBy", Namespace = "http://www.opengis.net/ogc")]
        public Collection<SortPropertyType> SortBy
        {
            get
            {
                return this._sortBy;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("handle")]
        public string Handle { get; set; }

        private Collection<XmlQualifiedName> _typeName = new Collection<XmlQualifiedName>();
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("typeName")]
        public Collection<XmlQualifiedName> TypeName
        {
            get
            {
                return this._typeName;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("featureVersion")]
        public string FeatureVersion { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("srsName", DataType = "anyURI")]
        public string SrsName { get; set; }
    }
}
